import numpy as np

# 读取文件
uk_file_path = './youtube_video_data/GB_video_data_numbers.csv'
us_file_path = './youtube_video_data/US_video_data_numbers.csv'

# unpack转置
t1 = np.loadtxt(uk_file_path, delimiter=',', dtype=int, unpack=True)
t2 = np.loadtxt(uk_file_path, delimiter=',', dtype=int)

print(t1)
print('*' * 100)
print(t2)

# 取行
print(t2[2])  # 等价于t2[2,:]
print('*' * 100)
# 取连续多行
print(t2[2:])
print('*' * 100)
# 取不连续多行
print(t2[[2, 5, 8]])
print('*' * 100)
# 取列
print(t2[:, 0])
print('*' * 100)
# 取连续多列
print(t2[:, 2:])
print('*' * 100)
# 取连续多列
print(t2[:, [0, 2]])
print('*' * 100)
# 取多行和多列
print(t2[2:, 1:])
print('*' * 100)
# 取多个不相邻的点(0, 0)和(2, 2)
print(t2[[0, 2], [0, 2]])
print('*' * 100)

# 赋值
t1[:, 2:4] = 0
print(t1)
print('*' * 100)
# 布尔索引
t = np.arange(24).reshape((4, 6))
print(t < 10)
print('*' * 100)

t[t < 10] = 0
print(t)
print('*' * 100)

t = np.arange(24).reshape((4, 6))
# 三目运算符（小于10的变成0，其他的变成10）
print(np.where(t < 10, 0, 10))
print('*' * 100)

t = np.arange(24).reshape((4, 6))
# 裁剪（小于10的替换成10，大于18的替换成18）
print(t.clip(10, 18))
